#ifndef TINY_CLI_H
#define TINY_CLI_H

#include	"stdio.h"
#include    "stdlib.h"
#include	<string.h>

// 定义打印宏定义
#define TINY_PRINTF printf  
// 定义内存分配函数
#define TINY_MALLOC malloc
// 命令名称最大长度
#define TINY_CLI_MAX_CMD_LENGTH 16
// 输入字符串最大长度
#define TINY_CLI_MAX_STR_LENGTH 256
// 最大参数个数
#define TINY_CLI_MAX_ARGV 8

//枚举返回状态
enum tiny_cli_status
{
    TINY_CLI_ERR = -1,  // 错误
    TINY_CLI_OK = 0,    // 成功
};

//命令数据结构体
typedef struct tiny_cli_table
{
    char name[TINY_CLI_MAX_CMD_LENGTH];
    void (*func)(int argc, char **argv);
    struct tiny_cli_table *next;
}tiny_cli_table_t;

//初始化函数
int tiny_cli_init(void);
//添加命令
int tiny_cli_add_cmd(char *name, void (*func)(int argc, char **argv));
//处理字符串
int tiny_cli_process_str(char *str);

#endif